embedvr / super-pawesome-calculator

1 stars 0 forks source link

Project Plan #1

Open fletcheaston opened 1 month ago

fletcheaston commented 1 month ago

Project overview

The goal of this project is to create a vertically-integrated extension ecosystem centered around a base project—a simple calculator—that supports a wide range of plugins. These plugins can range from basic formula shortcuts to complex graphing modules with custom UI, providing users with a highly customizable and versatile toolset.

Project components

Extensible calculator

The core of the project is a simple, extensible calculator.

The calculator should...

SDK and development tools

Tooling to enable third-parties to build plugins for the calculator.

Some example plugins could include...

The SDK and other development tools will allow third parties to...

Infrastructure

Systems that make the project run!

Things we'll need to run include...

Project internals

This document

This should be a living document of the project, something that's up-to-date with the project as we plan it and work on it!

Tooling

embedvr commented 1 month ago

preferences for cloud, frameworks, etc.?

was thinking maybe Remix on Cloudflare Pages? any parts that cant go on Cloudflare could go to Railway. am curious if you have any preferences here @fletcheaston

fletcheaston commented 1 month ago

Sick, I've heard good stuff about all of those but haven't used them on projects yet. Excited to see it :)

I really like Next.js frontend/Django backend on Cloud Run in GCP!

embedvr commented 1 month ago

ive used Cloudflare Pages a bunch and a little bit of Railway for some backend stuff, Remix a little less knowledgeable on but it looks like it'd be fun to learn.

i do question the rational behind the Next.js / Django stack, doesn't Next.js do backend stuff by itself?

fletcheaston commented 1 month ago

Yes and no 🙃

Next.js can run code on the server, for both fetching data and POSTing data (through server actions), but it's not a batteries-included framework the same way Django is.

With Django, you get a ton of stuff for free like...

And like a million other useful packages. You can do equivalent stuff with Next.js and a bunch of libraries and custom stuff, but it's really easy to just stick with Django and get it for free.

On Next.js server-side, I haven't used server actions much yet, but I will do a fair bit of server-side data fetching for the initial content on a page. Even tho Next.js is more geared towards ecommerce, I mostly like it for the conveniences and ergonomics it provides for DX.

fletcheaston commented 1 month ago

Added a section above for "Infrastructure". That's probably the most complex part of the project 😅

@embedvr want to work on that sooner or later? Might be easier to just get the ball rolling with basic repo and web app setup, and just hand-wave the infrastructure until it's needed

embedvr commented 1 month ago

Yes and no 🙃

Next.js can run code on the server, for both fetching data and POSTing data (through server actions), but it's not a batteries-included framework the same way Django is.

ahh so its more like Laravel than it is Next.js, that makes more sense. thanks for the clarification lol haven't messed with python to know whats going on over there.

@embedvr want to work on that sooner or later? Might be easier to just get the ball rolling with basic repo and web app setup, and just hand-wave the infrastructure until it's needed

i can probably get a little calculator app set up and we can start from there. should we do a monorepo? if so, what should we use for that? i normally lean toward turborepo but seeing as this probably isn't a JS/TS only project we might wanna find something else

fletcheaston commented 1 month ago

should we do a monorepo?

Yeah, that's what I was thinking

...as this probably isn't a JS/TS only project we might wanna find something else

Turborepo works well with other languages, just need a package.json file for each package with the relevant commands there. I like Turborepo a lot :)

embedvr commented 1 month ago

Turborepo works well with other languages

in that case, we can use turborepo :p ill get started on a little calculator app in a few and we can go from there

fletcheaston commented 1 month ago

@embedvr did you want any mockups, or you got it covered on the initial design?

embedvr commented 1 month ago

@embedvr did you want any mockups, or you got it covered on the initial design?

i have some ideas, gonna try them out soon. been a bit busy as of late though with family stuff

fletcheaston commented 1 month ago

No worries, just checking! :)