3 ms·
Generally I find that trying to solve problems begets more problems (i.e. side projects beget side projects). Choose a tech stack and start building a Reddit cl
by brotchie 6y ago
Generally I find that trying to solve problems begets more problems (i.e. side projects beget side projects). Choose a tech stack and start building a Reddit clone, and you'll quickly hit roadblocks and get ideas.
Started a new side-project on the weekend (after a long long hiatus of just focusing on day job). Phase 1 was simply getting the stack up and running (PostgreSQL-backed, Python gRPC service taking gRPC-web through Envoy to a React front-end). Took some fighting through the setup to get a full-stack existence proof, ideas that arose during the working session:
side-project TODO #1 - Write a blog post about getting this all setup using current versions and push a public github repo with the setup to help other out.
side-project idea #2 - Build a micro-PaaS where a customer can define a gRPC interface, Python module implementing that, and with a single command, push this to a live serving endpoint.
side-project idea #3 - I need a state machine as part of my application logic, TODO: write a Python non-ephemeral state machine library that, with a simple Python internal DSL, backs state machine persistence onto a PostgreSQL table, handle automatic schema updates as the state machine is changed / versioned.
Literally not enough time to do any of these things though :)
- angrais 6y agoWhy'd you go for gRPC in particular for your Reddit clone?
- brotchie 6y agoWell, OP was the one who suggested to build a Reddit clone, my side project is something else :) re: gRPC, largely pragmatic because of familiarity with protos and RPC interfaces defined in terms of protos. I wanted a typed API definition that generates first-class implementations in Typescript and Python. Haven't had much success in the past re: using other formal mechanisms of defining API interfaces, and I'm no longer up-to-date with what's recommended in this space (any suggestions). Alternative was GraphQL (since using React) but that's a learning curve and dealing with protos in Typescript and Python is a known-known for me.