StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Home
  2. Companies
  3. Orbulo
Orbulo

Orbulo

tabulo.app

The virtual replacement for classroom whiteboards.

83tools
1decisions
0followers
OverviewTech Stack83Dev Feed

Tech Stack

View all 83
Stack by Layer
Application & Data61
Utilities3
DevOps15
Business Tools4
Application & Data
61 tools (73%)
Utilities
3 tools (4%)
DevOps
15 tools (18%)
Business Tools
4 tools (5%)

Application & Data

61
ElixirPhoenix FrameworkDiscordbcryptjspkg-dirjsonwebtokenlint-stagedmodule-aliasjwt-decodeLodashhtml2canvasApolloQuasar Frameworkbase64-jsaws-sdkts-node-devts-nodeGoogle Drivegraphql-toolsdateformatescape-htmlinquireruuidpretty-mspgioredisDocker ComposeAmazon EC2 Container ServiceKubernetesSassnanoiddotenvdayjsActixRustts-jestNetlifyTraefikCapacitorPugAmazon RDSGoogle Cloud PlatformMarkdownHerokuGraphQLCSS 3Vue.jsAmazon EC2Amazon S3RedisPythonLuaCloudFlareJavaScriptNode.jsDockerHTML5PostgreSQLUbuntuES6TypeScript

Utilities

3
Async-GraphQLAmazon ElastiCacheGmail

DevOps

15
Visual Studio CodeAndroid StudioStylelintWebpackPrettierJestYarnESLintBabelVimpnpmPlaywrightGitHubGitnpm

Business Tools

4
GravitG SuiteStack OverflowGoogle Fonts

Latest from Engineering

View all
Leon Si
Leon Si

CTO at Orbulo

Jul 23, 2021

DecidedonLuaLua

At Tabulo, we make extensive use of Redis as a state store. However, for common operations, we found ourselves making multiple requests to the Redis server from our Elixir microservice. These network requests became a bottleneck, and so we turned to using Lua scripts that could be run on the context of the Redis server, which would only require one network request per script.

However, the Redis implementation of Lua had its restrictions; for one, we couldn't use require() calls in Lua. There were also times when we wanted to call one Lua script from another, which Redis didn't support (there was an undocumented workaround, but it made debugging a pain). So, we wrote a preprocessor that would replace require() calls with the actual content of the file it was requiring and create generated Lua files that could be read and loaded into the Redis server.

However, as our Lua scripts got more complex, we wanted a more maintainable way to write them. We turned to Teal (https://github.com/teal-language/tl), a dialect of Lua that adds static types while still compiling to Lua (similar to TypeScript for JavaScript). Teal worked beautifully, and we now write our Lua scripts using Teal, compile them into Lua, and preprocess them using our custom preprocessor.

For us, while Lua may not be the most powerful language, it has served us beautifully for writing Redis scripts, especially in combination with Teal.

34.5k views34.5k
Comments

Team on StackShare

1
Leon Si