
Repl.it Database - amasad
https://blog.repl.it/database
======
jamestimmins
Whenever I see Repl product announcements, I'm reminded of this quote from
Paul Graham.

    
    
       If you want to take on a problem as big as the ones I've discussed, 
       don't make a direct frontal attack on it. Don't say, for example, 
       that you're going to replace email. If you do that you raise too 
       many expectations. Your employees and investors will constantly be 
       asking "are we there yet?" and you'll have an army of haters waiting 
       to see you fail. Just say you're building todo-list software. That 
       sounds harmless. People can notice you've replaced email when it's a 
       fait accompli.
    
    

I wonder if there's something similar going on with Repl, and if so, what
their end goal is.

~~~
jameslk
The end goal is to move the IDE and all development tooling to the cloud
(similar to what GitHub Codespaces is trying to do). All editor defaults,
build tools, linting, environment best practices, etc will be provided for you
without all the ceremony of setting it up. This will make it easier for new
team members to be productive from day 1 and it will allow you to have
multiple development environments for each branch of work.

The realization is that if you control the development environment, by
introducing seamless integrations with your hosting through things like easy-
to-use databases (i.e. vendor lock-in), you also have control over the hosting
of applications. That's a pretty lucrative business as we've seen with AWS,
GCP, Azure, etc.

Also, there's a trend towards low code/no code, so everything is becoming tiny
microservices integrated with other SaaS solutions. Something like Repl.it can
help you with the "last mile" of development work when you need build
something lightweight and quick.

~~~
pampa
I just thought that i feel like a medieval guild craftsman must have felt
during the industrial revolution. We did have all this sharp and complicated
tools we installed and configured on our laptops ourselves, spent years in
apprenticeship just to learn now to awk or exit vim. Passed the secret
knowledge to our own padawans.

And now they are replacing it with what? An IDE in a browser??? that you can
just point to and start writing code? just like that??? 8-)

~~~
Barrin92
At least at this point I don't think the craftsmen need to despair because I
don't think the online IDE experience is even close to a good personal setup.
It feels more like a solution for devices/locations where you quickly need to
get an environment up, which has it's place obviously.

~~~
nl
I've been programming (professionally) for over 20 years. I now do most of my
development in Jupyter, and browser-based IDEs are preferable to me in almost
every way.

~~~
dman
Which language?

~~~
nl
Almost all in Python at the moment.

------
gorgoiler
I’ve introduced REPL.it into my new job as a teacher, this year.

It is _utterly transformative_.

Multiplayer, in a COVID classroom, means I can easily help any pupil without
having to PPE-up and break into their bubble. At the start of every class I
post a google quiz whose sole question is “what is your REPL multiplayer link
for this class?”.

I haven’t used many of the other school features for REPL.it. I can think of a
few I’d love to see.

Packages are so easy to install. A pupil today told me they’d not really had
any luck with their coursework because they couldn’t install textract. A few
clicks and they had a poetry enabled repl with textract read to go.

REPL.it has brought about a quantum leap in the way we are working with
pupils. It is the epitome of how frictionlessness can make an enormous
difference.

~~~
remram
Your post got me intrigued, but I couldn't get any multiplayer to work. Does
it only work when signed in?

I think it is cool to offer some functionality to guest users, however they
should make it clearer what the limitations are so that people evaluating it
get a good sense for the features.

I even created an account, which changed my repl to "anyone can edit" to
"forks on edit" apparently? But still no multiplayer?

~~~
gorgoiler
I am signed in.

Multiplayer URLs have “join-“ in the path, and are available from the “share”
button in the top left.

It would be very handy (and intuitive) if all REPLs were a live read-only
window on what the owner was typing. The reload-page-to-get-latest-version
thing works, but multiplayer is there and awesome so it seems odd to hide it
with a different type of URL that looks almost identical to the regular read-
only fork-on-edit one.

~~~
amasad
You're absolutely right! The UX could be so much better where every repl is
live and you can request to edit. Working on that.

------
kampsduac
We use repl.it in an AP Computer Science course I co-teach. Incredible tool
for students who are learning Java, allowing them to code and collaborate on
their Chromebooks, no Java local setup required.

The AP CS course exercises and concepts don't require persistence of data, but
this could really open up opportunities for students to create more advanced
projects!

~~~
amasad
That's awesome! We've been working with some teachers to develop free
curriculum, if you're interested doing something with data would love to chat
(we have budget for this).

[https://docs.repl.it/curriculum/Intro](https://docs.repl.it/curriculum/Intro)

~~~
harikb
I have been using repl.it to teach coding to some high school students. Here
is some feedback

1\. It would be great if you gave a shell level access to the teacher/paid
accounts to manage shared REPLs. When there are 100s of shared URLs to deal
with, the UI is very limited to search and find repls.

2\. While I understand the need to simplify UI, it is not clear why "Python"
REPL comes with a folder view to the left by "Python + PyGames" one doesn't.
Similarly shell is only accessible in certain types of REPLs. I understand
there some key combination to start shell, but only works some of the time.

3\. I had a case of one REPL running an infinite loop - none of us could do
anything to terminate it.

4\. Once we wrote some code that generated a file. It took us several
refresh/logout sequences to make it visible in the file manager - clear
support for such use-cases would be helpful.

~~~
amasad
>1\. It would be great if you gave a shell level access to the teacher/paid
accounts to manage shared REPLs. When there are 100s of shared URLs to deal
with, the UI is very limited to search and find repls.

Like an account wide shell access? That's an interesting idea although not
sure about the feasibility since every repl is it's own container.

One thing we've been toying with is a CLI-like tool that let's you manage your
account. We can add account-wide grep and things like it there. You can access
an early version here: [https://repl.it/~/cli](https://repl.it/~/cli)

>2\. While I understand the need to simplify UI, it is not clear why "Python"
REPL comes with a folder view to the left by "Python + PyGames" one doesn't.
Similarly shell is only accessible in certain types of REPLs. I understand
there some key combination to start shell, but only works some of the time.

This is great feedback and we're already starting to address it. The
difference between different environments is annoying. I believe PyGame is the
same environment so you might be talking about "Python with Turtle" which
currently runs a different environment. We're getting close to addressing all
this.

As for the shell it's accessible everywhere now, you can pull it up from the
command-bar [https://blog.repl.it/commandbar](https://blog.repl.it/commandbar)

>3\. I had a case of one REPL running an infinite loop - none of us could do
anything to terminate it.

That's surprising to hear because we do a lot of work to try to handle
infinite loops and make it easy to terminate (try this for example
[https://repl.it/@amasad/loop-test](https://repl.it/@amasad/loop-test)). Do
you remember exact steps or do you have a link to debug? You can always email
me with bugs or feedback: amjad@repl.it

>4\. Once we wrote some code that generated a file. It took us several
refresh/logout sequences to make it visible in the file manager - clear
support for such use-cases would be helpful.

It's actually quite common use-case to generate files and while incredibly
tricky to make it work well I believe we've recently became better at this.
Can you give it another shot? Again please email me with the repl if it
doesn't work.

Thanks so much, feedback like this is always valuable. You'd be happy to know
that a company-wide priority right now is quality, bugs, and reliability. By
early next year we'll be much more polished.

~~~
harikb
Thank you for the reply! I will give your suggestions a shot and get back to
you.

------
kochman
Hey HN! I’m a Repl.it engineer who’s been focused on bringing Database to
life. Happy to read your comments and answer any questions you might have.

~~~
prionassembly
This is the first I'm hearing of repl.it and it looks like an amazing
resource.

How does this work business-wise? How does it make money?

Edit: Will Julia be supported in the future? This is not good...
[https://repl.it/@asemic/ConsiderateBelatedAccounting](https://repl.it/@asemic/ConsiderateBelatedAccounting)

~~~
jtanderson
It's subscription-based to get advanced features:
[https://repl.it/site/pricing](https://repl.it/site/pricing)

------
laluser
I have been a user of repl.it for quite some time. I use it occasionally to
work on small projects with my younger sister who is a CS major. I would
actually really love something like repl.it for my work. There are a ton of
places where the normal code, review, deploy, validate, etc lifecycle of
development is way too slow for small projects or for prototyping.

~~~
amasad
That's exactly how we use it internally at Repl.it and honestly it's almost
like an organizational superpower. We can for example deploy a slack bot to
help with deployment in minutes instead of days, and it's all collaborative.
Working on internal tools resembles more gardening than building at this point
-- constant improvement and evolution.

If you care to chat about this use-case and help us learn more please email me
amjad@repl.it

~~~
dmos62
I'm really interested; could you point to some walkthrough/demo of such a
workflow? I'm having trouble seeing it.

------
pryelluw
Co-organizer of PyATL here ([https://pyatl.dev](https://pyatl.dev)).

This is a great addition to the product. Ive been working on adding repl.it to
our toolbox. Is there sone kind of plan that would support a grassroots group
like ours? I specially like the ability to have classrooms as we are teaching
more and more every week.

------
Stratoscope
Unsolicited testimonial: Repl.it is awesome! I'm a paying customer and use it
all the time.

Even though I have all the JetBrains IDEs along with VS Code and Visual
Studio, if I want to try out something quickly it's faster and easier to do it
on Repl.it.

I've also been using Repl.it to post runnable code samples for some of my
Stack Overflow answers.

I applied for a job there a couple of months ago and got to (virtually) meet
amasad and several of the team members. It didn't turn out to be a fit, but
they are great people making a great product and rapidly improving it.

For anyone looking, they are hiring, and yes, the jobs page is a Bash REPL!
:-)

------
btouellette
Cloud9 used to be my primary development environment for anything Node-based
or intended for the web. Loved the features and the anywhere-access of an
online IDE. Then Amazon bought it and effectively removed their free-tier by
billing you for the AWS hours the environment took to run (I know there is an
AWS free tier but it is one-time and expires after a year). When looking
around for a replacement Repl.it was the only other thing remotely close in
features.

The only two issues that I ran into was not having the ability to run local
DBs and Chrome reporting the web preview page for my replit as containing
malware and not letting me load it. C9 basically just dropped you to a Linux
shell where you could install and run your own copy of Mongo or Postgres. This
seems like it would satisfy a lot of use cases and running your DB on an
external provider isn't too tough anyway. The second issue is probably just
par for the course when allowing user executed code and web content to be
hosted from your servers although I never got hit with the same on Cloud9.

------
ketzo
Damn, feels like every other week I see repl.it on the front page of HN with
some rad new feature. Y'all are doing awesome work, keep it up.

------
maple3142
Having a simple database it a great feature for prototyping, but I think
having custom Dockerfile support would be even better.

Current PHP support in repl.it pretty limit (Very few extensions are enabled,
so you can't connect to real MySQL...). This won't be a problem if advanced
users can use there own Dockerfile.

UI wise, I think it would be good if repl.it can adopt a VSCode-like interface
and their keybindings. GitHub codespaces and some other cloud coding platform
already have this.

Reliability of deployed services should be improved too. I tried use a website
monitor to a repl.it with "Always On", but it will still be down several times
a day. Each downtime is about 1~2 minutes.

------
miki123211
I'm quite sad repl.it is used in schools, as its accessibility for the blind
is almost nonexistent, or at least it was when I last checked it a few months
ago.

They have enough lock in with the collaboration and sharing features that just
using a different tool might be difficult.

This is plain old discrimination against disabled students. Don't do it.

~~~
buzzerbetrayed
This is silly. Your argument is purely based comparisons.

If there is a tool that helps 99% of students learn better, don't refuse to
use the tool just because it can't help the 1%. I'm NOT saying to forget about
the 1%. Also do everything you can to help the 1%. But the 99% shouldn't be
artificially slowed down just so they don't get ahead of the 1%.

Sorry if that's controversial. Just seems ridiculous to me to prevent people
from learning in whatever way is most effective to them.

------
a0zU
>Repl.it is already the best place to build your apps. no...

~~~
typon
Weird to see you downvoted on a forum called "Hacker" News. Who would actually
use repl.it to build apps as opposed to the traditional way of having your
text editor + compilers installed on a machine you own? I think repl.it is
great for prototyping or teaching, but it is NOT the "best place to build your
apps". I would doubt repl.it engineers even use it to design their software.

~~~
onion2k
_I think repl.it is great for prototyping..._

aka hacking on an app, like people who read Hacker News might do.

------
triptych
You can even run Doom on Repl.it [https://repl.it/talk/share/DOOM-1993-on-
replit-yes-really/13...](https://repl.it/talk/share/DOOM-1993-on-replit-yes-
really/13526)

------
rbtprograms
Looks pretty neat! I wonder if multiple repl's can hook up to a singular
database, this post makes it sound like it's a 1:1 relationship. Either way
Repl stays adding great features.

~~~
kochman
Right now it is 1:1, but we're hearing that people would like to share one
database among many repls. Something you can do right now is spin up a repl
and have other repls talk to it over HTTP to share a database:
[https://docs.repl.it/misc/database#how-do-i-share-a-
database...](https://docs.repl.it/misc/database#how-do-i-share-a-database-
across-repls)

------
excetera
I will say it's eerily similar to EasyDB
([https://news.ycombinator.com/item?id=21587935](https://news.ycombinator.com/item?id=21587935)),
including the API, but it only seems to work in Repl it

Did Repl.it acquire them or?

EDIT: My bad it seems to work elsewhere
[https://docs.repl.it/misc/database#how-do-i-share-a-
database...](https://docs.repl.it/misc/database#how-do-i-share-a-database-
across-repls)

------
slifin
I really wish they'd merge their Clojure pull request

The performance of that REPL really bombed maybe a year ago now I've had to
stop using it or recommending it

~~~
markc
I want to like repl.it, and it's obviously great for many use cases, but
compared to, say, CIDER for Clojure, it's like typing with cement gloves.

Even if it weren't so slow, there are some features I'd need before
considering it for even quick/casual coding tasks:

Library loading, Paredit (or parinfer), Flexible eval (sexp, form, selection),
Easy help/reference and function signature help (like Eldoc).

------
sneak
I love repl.it and want to use it to build and run real apps.

I can’t do that without the hosting component (which afaik isn’t shipped yet)
and I won’t write code that locks me into a specific hosting choice, which is
what this new “Database” feature seems to be.

Coding to an API of a company that might not be in business in five years
isn’t wise, no matter how much you like that company.

~~~
rlayton2
This makes sense, but the Database seems to work mostly like a normal python
dictionary. From that perspective, it would be easy to replace with a
different solution if required (not trivial, but not hard).

~~~
sneak
I agree, but I'd much rather just write to a non-proprietary Postgres client
API once and know that the replacement is literally "update an environment
variable" and nothing more.

It's almost certainly something that would need to be done in an SHTF,
unscheduled event anyway, so best keep it to zero.

------
kirillzubovsky
Love seeing team Replit respond to feedback and move fast. I am using them for
[https://suddenschools.org](https://suddenschools.org) courses and couldn't be
happier. Being able to start with the same environment for every student is a
huge plus. Keep on crushing it!

------
real_kvothe
Repl is a great tool that I have used many times and have directed many
friends to. However, it is a bit surprising that I cannot choose a Python
version? It defaults to >3.8 when starting a new Python repl

------
jslakro
I've not used a cloud dev environment since a couple months before Cloud9
changed the terms of service. I see repl.it as a good replacement and
absolutely will give it a chance

------
simonebrunozzi
Key-value store: check.

Next obvious step: providing a persistent PostgreSQL database where every
customer can create tables, etc, up to a limit in storage or transactions to
avoid misuse.

------
nynx
Has repl.it ever thought about supporting self-hosted repls? I would kill for
a repl.it interface to my servers, even if it only supported one or a few
languages.

------
typon
I wish there was a tool that combined the information output of godbolt with
the rest of repl.it features for C++. I would pay for such a tool.

------
zamadatix
Tangential but trying out Repl.it for the first time because of this post, is
there any way to specify Node version or are you stuck on LTS?

------
ngcc_hk
Database?! Is it ready for production or still just for trying and teaching ?

------
donpark
Cool natural way to encourage signup and paid accounts. Well done!

------
capableweb
Neat! But I wanted one repl for every database :(

------
jack-wang
Can REPL be used in industry enterprises?

~~~
amasad
What use-cases are you thinking to use it for?

------
MuffinFlavored
docker-compose.yml

Dockerfiles in general

Terraform

once repl.it has these features (which I am sure it is working on), it will be
super powerful

