Console

toyDB, Vandal, and StaticBackend

Sponsorship

NanoVMs

Nanos is a free/open source unikernel that runs Linux applications faster and safer than Linux itself. Deploy your first unikernel in just a few minutes!


Not subscribed to Console? Subscribe now to get a list of new open-source projects curated by an Amazon engineer in your email every week.

Already subscribed? Refer 10 friends to Console and we’ll donate $100 to an open-source project of your choice!

Share Console


Projects

toydb

toyDB is a distributed SQL database written in Rust, written as a learning project.

language: Rust, stars: 2700, watchers: 57, forks: 171, issues: 5

last commit: August 09, 2021, first commit: April 28, 2019

https://twitter.com/erikgrinaker

staticbackendhq/core

StaticBackend is a simple backend that handles user management, database, file storage, forms, and real-time experiences via channel/topic-based communication for web and mobile applications.

language: Go, stars: 199, watchers: 6, forks: 17, issues: 13

last commit: August 12, 2021, first commit: January 10, 2020

vandal

Vandal is a browser extension that helps you quickly navigate the web archive and travel back in time without leaving the current tab.

language: JavaScript, stars: 84, watchers: 3, forks: 2, issues: 8

last commit: June 26, 2021, first commit: October 07, 2018

https://twitter.com/vghanand


An Interview With Dominic St-Pierre of StaticBackend

Hey Dominic! Thanks for joining us! Let’s start with your background. Where have you worked in the past, where are you from, how did you learn how to program, what languages or frameworks do you like?

I'm from a small town north of Montreal, Québec, Canada.

I started programming at 16, a long time ago (1996). I wrote scripts for the popular IRC client mIRC at the time. It was a C-like scripting language. I ran 1 entire year using Debian and no GUI, only the terminal. I was building bot for IRC channels I was maintaining. It was just FUN ;).

I loved programming so much that I decided I'd be doing that as a living. I went to school and got my first job in the industry creating dynamic HTML 4 with a classic ASP backend in 1999. From 2000-2007 I did the "boring" line of business CRUD application development on the .NET platform using C#.  Developer then team lead.

I started my consulting company in 2007 and have worked from home since that time. I've gone from C# to TypeScript/Node to Go and lots of in-between (Python, Elm, Elixir).

I'm a polyglot developer and enjoy learning new languages and programming styles. Lately, functional programming is something I'm interested in. I also crave building products, particularly software-as-a-service. Been doing this since 2008.

Who or what are your biggest influences as a developer?

I really enjoy language creators. Rob Pike as some excellent talks, Joe Armstrong was extremely passionate and very interesting. Rich Hickey is also someone I enjoy listening to.

What is one app on your phone that you can’t live without that you think others should know about?

I’m only using my phone to call/receive calls and listen to podcasts. Not at all a mobile user.

Got any favorite podcasts you can recommend?

These are the podcasts I cannot live without:

What are you currently learning?

For the last four years or so, I started to be more and more interested in functional programming. I've started with Elm and then Elixir and now I’m digging a bit more into Erlang directly.

How do you separate good project ideas from bad ones?

A mix of my interests/enthusiast and the target users' reaction after some time.

What specifically do you look for in user reaction that would indicate a good idea?

User engagement for open-source projects is not only star count on GitHub, but the word of mouth that users produce after using a project. Are they actively using it, and are they talking about it? Are they asking for new features and reporting bugs. If you're receiving sponsorship, those are also the same user engagement reactions that I'd use to determine if a SaaS idea has some legs or not. Sponsorship being paid customers.

Where did the name for StaticBackend come from?

I was bored of writing the same backend code over and over on all side-projects I created. So I envisioned a backend foundation that does not move and that people can rely on as stability (a static backend). And also, let's be honest, the .com was available ;).

Who, or what was the biggest inspiration for StaticBackend?

I wanted a fast way to try software ideas. I wanted the typical and common aspects ready and easily reusable. I also wanted to have something completely independent of any vendor, so no lock-in like Firebase does with your code.

What is the most challenging problem that’s been solved in StaticBackend, so far?

Certainly not a technical/code challenge because it was kind of easy to write, more of a hard design choice. But I think that the way I handle permissions for database collections is developer-friendly. I used the same permissions model as Unix/Linux file system (owner/group/everyone) with the same octal values for read, write and execute.

I did many other experimentation that felt too verbose or too complicated for something as simple as, say: 640.

https://github.com/staticbackendhq/core/blob/main/internal/permission.go

Are there any competitors or projects similar to StaticBackend? If so, what were they lacking that made you consider building something new?

StaticBackend was released as a close source SaaS in October 2019. As a developer tool that handles the backend of an application, it's a big commitment to ask developers to trust a small one-person company with their database and backend API.

On June 15, 2021, I decided to release it as free and open source. I was told about SupaBase after my announcement. I'm happy that I chose Go as the language because I have a focus on performance and hosting costs for developers that might want to use StaticBackend. It handles a lot of web requests and concurrent web socket connections on a cheap $5/month VPS.

What is the release process like for StaticBackend?

I'm currently using make tasks to build binaries for Linux, Mac, and Windows.

I need to make sure the client libraries are up-to-date and tested for the latest version. There are client libraries for JavaScript (browser), Node, and Go at this time of writing.

Also, a CLI is allowing to manage most of the resources handled by the backend server.

Each component is published at the same time.

How do you intend to monetize StaticBackend intended to eventually be monetized if it isn’t monetized already?

I still have the managed hosting service offering. I'm also taking GitHub sponsors.

How do you balance your work on open-source with your day job and other responsibilities?

I'm trying to invest as much time as I can on StaticBackend because it's where my enthusiasm is. The ideal situation would be to either have enough revenue from the managed hosting and/or GitHub sponsors to be able to be full-time developing and maintaining the project.

What is the best way for a new developer to contribute to StaticBackend?

Give feedback, try to build something on top, and see what's missing or hard to get started with. I'm still in the early phase of finding users for the tool. Joining the discord server, asking questions in the Discussions GitHub tab, creating issues. Contributing code is still a bit hard until I reach v1, but this is still very helpful.

If you plan to continue developing StaticBackend, where do you see the project heading next?

I'd be ecstatic to start seeing some developers deploying apps on top of StaticBackend. So I'll go with the feedback. In the pipeline, there's server-side functions and events/queue/scheduler system, which are kind of big features.

What motivates you to continue contributing to StaticBackend?

I'm using it myself for all my SaaS products I'm building. I really enjoy the project.

Do you have any suggestions for someone trying to make their first contribution to an open-source project?

Do not be afraid of asking questions. Reach out to maintainers and contributors; it's usually friendly out there, and people are normally very happy to see other developers interested in their project.